﻿using Connection.IView;
using Connection.Presenter;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace RemoChat
{
    /// <summary>
    /// Interaction logic for WinSignUp.xaml
    /// </summary>
    public partial class WinSignUp : Window, ISignUpView
    {
        string url;
        public WinSignUp(string _url)
        {
            InitializeComponent();
            url = _url;
        }

        public string Username
        {
            get { return txtUsername.Text; }
            set { txtUsername.Text = value; }
        }

        public string Password
        {
            get { return pwdPassword.Password.ToString(); }
            set { pwdPassword.Password = value; }
        }

        public string PasswordAgain
        {
            get { return pwdPasswordAgain.Password.ToString(); }
            set { pwdPasswordAgain.Password = value; }
        }

        private void btnDangKy_Click(object sender, RoutedEventArgs e)
        {
            if (this.Password.Trim() == "" || this.PasswordAgain.Trim() == "" || this.Username.Trim() == "")
                MessageBox.Show("Xin nhập đầy đủ thông tin", "Thông báo");
            else
                if (this.Password == this.PasswordAgain)
                {
                    SignUpPresenter _signupPresenter = (SignUpPresenter)Activator.GetObject(typeof(SignUpPresenter), url + "PRESENTER/SIGNUPPRESENTER_OBJECT");
                    if (_signupPresenter.IsUnicodeUsername(this.Username.Trim()))
                        MessageBox.Show("Username này có chứa ký tự đặc biệt\nChọn username không dấu, không khoảng trắng và các ký tự đặc biệt", "Thông báo");
                    else
                    {
                        if (_signupPresenter.IsRightUsername(this.Username.Trim()))
                        {
                            _signupPresenter.InsertNewUser(this.Username.Trim(), this.Password);
                            this.Close();
                        }
                        else
                            MessageBox.Show("Username này đã có người dùng khác đăng ký, hãy chọn username khác", "Thông báo");
                    }
                }
                else
                    MessageBox.Show("Password không chính xác khi xác nhận", "Thông báo");
        }

        private void btnThoat_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }

        private void txtUsername_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
                btnDangKy_Click(sender, e);
        }
    }
}
